package classes;

import java.sql.Date;
import java.util.ArrayList;


import interfaces.Atacante;
import interfaces.Posicionable;
import interfaces.Defensor;
//import java.util.Date;
public class Usuario {
	//Entrega2, aqui se establecen los campos a persistir.
	private String nombre,apellido,alias,password;
	private Date fechaAlta, fechaModificacion;
	//Entrega1#1 Aqui se expresan los dos conjuntos de edificios y unidades
	private ArrayList<Posicionable> edificios, unidades;
	
	private boolean conectado;
	
	public Usuario(){
		
	}
	public Usuario(String nom, String apellido, String alias,String password, Date fea, Date fem){
		this.alias = alias;
		this.nombre = nom;
		this.password = password;
		this.fechaAlta = fea;
		this.fechaModificacion = fem;
		this.apellido = apellido;
	}
	
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getAlias() {
		return alias;
	}

	public void setAlias(String alias) {
		this.alias = alias;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Date getFechaAlta() {
		return fechaAlta;
	}

	public void setFechaAlta(Date fechaAlta) {
		this.fechaAlta = fechaAlta;
	}

	public Date getFechaModificacion() {
		return fechaModificacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public ArrayList<Posicionable> getEdificios() {
		return edificios;
	}

	public void setEdificios(ArrayList<Posicionable> edificios) {
		this.edificios = edificios;
	}

	public ArrayList<Posicionable> getUnidades() {
		return unidades;
	}

	public void setUnidades(ArrayList<Posicionable> unidades) {
		this.unidades = unidades;
	}

	public boolean isConectado() {
		return conectado;
	}

	public void setConectado(boolean conectado) {
		this.conectado = conectado;
	}
	
	public Boolean ocupa(Posicionable a, Posicionable b){
		return a.ocupa(b.getPosition());
	}
	
	public void atacar(Atacante a, Defensor d){
		a.atacarA(d);
	}

	public boolean chequearPassword(String password2) {
		return this.password.equals(password2);
	}
	
}
